import colorRGB from '../colorRGB';
import colorHex from '../colorHex';

/** 【同步方法】将任意颜色值减淡
 * @param color 颜色值字符串
 * @param level 减淡程度，数值范围：0~1
 * @return Hex颜色字符串，如：'#000000'
 */
function colorLight(color = '', level = 0) {
    
    // 初始化返回数据
    let data_return = '';
    
    // 将level参数转换为数字类型
    level = Number(level);
    // 将参数转换为RGB颜色值
    let str_rgb = colorRGB(color);
    // 如果数据有效，才执行
    if (str_rgb)
    {
        // 分离出三原色对应数值
        let arr_rgb = str_rgb.match(/\((\S*)\)/)[1].split(",");
        // 循环处理三原色数值
        for (let i = 0; i < 3; i++)
        {
            // 将当前颜色值节点 → 数字类型
            let num_rgbNode = Number(arr_rgb[i]);
            // 值越接近255，就越亮
            arr_rgb[i] = Math.floor( (255 - num_rgbNode) * level + num_rgbNode );
        }
        // 生成最终rgb颜色值
        let str_color = `rgb(${arr_rgb[0]},${arr_rgb[1]},${arr_rgb[2]})`;
        // 转化为Hex颜色值
        data_return = colorHex(str_color);
    }
    
    // 返回结果数据
    return data_return;
}

export default colorLight;